來到鐵人賽的第八天。你已經完成了第一階段的挑戰,學會了如何處理基本元件、接收使用者輸入,甚至製作了一個有功能的 App。
從今天開始,我們將進入第二階段。這個階段的重點是:如何處理大量的資料,並將它們以列表的形式顯示在畫面上。
無論是 Instagram 的照片牆、Facebook 的動態牆,還是 LINE 的對話列表,它們都用到了今天的主角:RecyclerView
。
RecyclerView
?RecyclerView
就是這樣一個聰明的「椅子管理員」。在 RecyclerView
的世界裡,有三個重要的角色,你需要先了解:
RecyclerView
本身:就是我們的「椅子管理員」,它負責管理畫面上的所有列表項目。Adapter
(適配器):就是我們的「電影院經理」,它負責告訴「椅子管理員」,現在要給觀眾看哪一排的椅子,以及椅子上要放什麼電影海報。LayoutManager
(佈局管理器):就是我們的「排隊規則」,它負責告訴 RecyclerView
,這些椅子要排成一排直線、還是像網格一樣。今天,我們只會專注在 RecyclerView
的基礎使用,並建立一個最簡單的列表。
RecyclerView
元件首先,我們需要在 app/build.gradle
檔案中,加入 RecyclerView
的函式庫。
Groovy
dependencies { // ... // 加入這行 implementation 'androidx.recyclerview:recyclerview:1.2.1' }
然後點擊右上角的 "Sync Now",讓 Android Studio 下載函式庫。
接下來,打開你的 activity_main.xml
檔案。
Palette
面板中,找到 Containers
分頁。RecyclerView
拖曳到你的畫面上。給它一個 ID,例如 myRecyclerView
。我們需要在 MainActivity.java
中,準備好要顯示在列表上的資料。
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
// 準備你的資料
List<String> dataList = new ArrayList<>();
dataList.add("這是第一個項目");
dataList.add("這是第二個項目");
dataList.add("這是第三個項目");
// ...
}
}`
現在,我們需要為列表中的每一個項目,設計一個單獨的畫面。
app/res/layout
資料夾上點擊右鍵,選擇 New -> Layout Resource File。list_item.xml
。TextView
,並給它一個 ID,例如 itemTextView
。這個部分比較複雜,我們將在明天的文章中詳細說明,今天只需要知道,需要一個名為 MyAdapter
的新檔案。
java/com.你的專案名稱
資料夾中,點擊右鍵,選擇 New -> Java Class。MyAdapter
。今天我們學習了 RecyclerView
的基本概念,它是一個用來顯示可滾動列表的強大工具。我們也完成了 App 的前期準備,包括:
RecyclerView
的函式庫。RecyclerView
元件。明天,我們將繼續學習最重要的部分:如何撰寫 Adapter
,讓你的資料真正顯示在 RecyclerView
上!
明天見!